﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DTO;
using DAL;

namespace BLL
{
    public class NhanVienBLL
    {
        #region Khai báo
        private NhanVienDAL _nvDAL;
        private List<NhanVienDTO> _lst;
        private NhanVienDTO _nvDTO;
        #endregion

        #region Phương thức lấy toàn bộ danh sách nhân viên
        /// <summary>
        /// Phương thức lấy toàn bộ danh sách nhân viên
        /// </summary>
        /// <returns></returns>
        public List<NhanVienDTO> GetListNhanVien()
        {
            _nvDAL = new NhanVienDAL();
            _lst = new List<NhanVienDTO>();

            try
            {
                _lst = _nvDAL.GetListNhanVien();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return _lst;

        }
        #endregion

        #region Phương thức lấy thông tin 1 nhân viên dựa vào mã nhân viên
        /// <summary>
        /// Phương thức lấy thông tin 1 nhân viên dựa vào mã nhân viên
        /// </summary>
        /// <param name="malbv"></param>
        /// <returns></returns>
        public NhanVienDTO GetNhanVien(string manv)
        {
            _nvDAL = new NhanVienDAL();
            _nvDTO = new NhanVienDTO();

            try
            {
                _nvDTO = _nvDAL.GetNhanVien(manv);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return _nvDTO;

        }
        #endregion

        #region Phương thức GetNhanVienTheoToken
        /// <summary>
        /// Phương thức GetNhanVienTheoEmail
        /// </summary>
        /// <param name="email">string</param>
        /// <returns>NhanVienDTO</returns>
        public NhanVienDTO GetNhanVienTheoEmail(string email)
        {
            _nvDAL = new NhanVienDAL();
            _nvDTO = new NhanVienDTO();
            try
            {
                _nvDTO = _nvDAL.GetNhanVienTheoEmail(email);

            }
            catch (Exception ex)
            {

                throw new Exception(ex.Message);
            }

            return _nvDTO;
        }
        #endregion

        #region Comment
        ///// <summary>
        ///// Phương thức Đăng nhập cho nhân viên
        ///// </summary>
        ///// <param name="tendangnhap">string</param>
        ///// <param name="matkhau">string</param>
        ///// <returns></returns>
        //public NhanVienDTO GetNhanVien(string tendangnhap, string matkhau)
        //{
        //    _nvDAL = new NhanVienDAL();
        //    _nvDTO = new NhanVienDTO();

        //    try
        //    {
        //        _nvDTO = _nvDAL.GetNhanVien(tendangnhap, matkhau);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new Exception(ex.Message);
        //    }
        //    return _nvDTO;

        //}


        ///// <summary>
        ///// Phương thức xóa 1 loại bài viết
        ///// </summary>
        ///// <param name="lbv"></param>
        ///// <returns></returns>
        //public int Xoa(NhanVienDTO nv)
        //{
        //    _nvDAL = new NhanVienDAL();
        //    int _index = -1;

        //    try
        //    {
        //        _index = _nvDAL.Xoa(nv);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new Exception(ex.Message);
        //    }

        //    return _index;

        //}

        ///// <summary>
        ///// Phương thức kiểm tra nhập mật khẩu cũ có đúng ko?
        ///// </summary>
        ///// <param name="nv"></param>
        ///// <returns></returns>
        //public string ktNhapMatKhauCu(NhanVienDTO nv)
        //{
        //    _nvDAL = new NhanVienDAL();
        //    string _index = null;
        //    try
        //    {
        //        _index = _nvDAL.ktNhapMatKhauCu(nv);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new Exception(ex.Message);
        //    }
        //    return _index;

        //}
        #endregion

        #region Phương thức thêm 1 nhân viên
        /// <summary>
        /// Phương thức thêm 1 nhân viên
        /// </summary>
        /// <param name="nv"></param>
        /// <returns></returns>
        public int Them(NhanVienDTO nv)
        {
            _nvDAL = new NhanVienDAL();

            int _index = -1;
            try
            {
                _index = _nvDAL.Them(nv);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return _index;

        }
        #endregion

        #region Phương thức sửa thông tin 1 nhân viên
        /// <summary>
        /// Phương thức sửa thông tin 1 nhân viên
        /// </summary>
        /// <param name="nv"></param>
        /// <returns></returns>
        public int Sua(NhanVienDTO nv)
        {
            _nvDAL = new NhanVienDAL();
            int _index = -1;
            try
            {
                _index = _nvDAL.Sua(nv);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return _index;

        }
        #endregion

        #region Phương thức xóa 1 nhân viên
        /// <summary>
        /// Phương thức xóa 1 nhân viên
        /// </summary>
        /// <param name="nv"></param>
        /// <returns></returns>
        public int Xoa(NhanVienDTO nv)
        {
            _nvDAL = new NhanVienDAL();
            int index = -1;

            try
            {
                index = _nvDAL.Xoa(nv);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return index;

        }
        #endregion

    }
}